int *p[3]={1,2,3}中的P到底是什么。。?

来源:百度知道 编辑:UC知道 时间:2024/04/28 00:09:35
#include<stdio.h>
main(){
int i=0;
for(i=0;i<3;i++){
printf("%d\n",p[i]);
}
为什么这个输出语句中使用的是p[i]而不是*p[i]??
少了一条语句
int *p[3]={1,2,3};

*p[i]是指针,P应该是指针地址

int *p[3];表示申明一个指针数组,p就是数组名
={1,2,3};表示给p[0],p[1],p[2]分别赋值为1,2,3
所以后面打印输出的时候没有用*p[i],输出的就是1,2,3
如果是*p[i],那么输出的就是p[i]指针所指的值

int *p[3];//整形指针 数组(元素是整形指针)
int p[3];//整形 数组(元素是整形)
int *p[3]={1,2,3};
相当于
p[0] = 1;
p[1] = 2;
p[3] = 3; //注:p[i]是整形指针,这里1,2,3就相当于地址1,地址2,地址3
输出语句中使用的是p[i]而不是*p[i]?
看需要:
输出p[i]就相当于输出元素的值
输出*p[i]就相当于输出元素指向地址的整形的值